home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / test / test_extcall.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2005-10-18  |  8KB  |  383 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.4)
  3.  
  4. from test.test_support import verify, verbose, TestFailed, sortdict
  5. from UserList import UserList
  6.  
  7. def e(a, b):
  8.     print a, b
  9.  
  10.  
  11. def f(*a, **k):
  12.     print a, sortdict(k)
  13.  
  14.  
  15. def g(x, *y, **z):
  16.     print x, y, sortdict(z)
  17.  
  18.  
  19. def h(j = 1, a = 2, h = 3):
  20.     print j, a, h
  21.  
  22. f()
  23. f(1)
  24. f(1, 2)
  25. f(1, 2, 3)
  26. f(1, 2, 3, *(4, 5))
  27. f(1, 2, 3, *[
  28.     4,
  29.     5])
  30. f(1, 2, 3, *UserList([
  31.     4,
  32.     5]))
  33. f(1, 2, 3, **{
  34.     'a': 4,
  35.     'b': 5 })
  36. f(1, 2, 3, *(4, 5), **{
  37.     'a': 6,
  38.     'b': 7 })
  39. f(1, 2, 3, x = 4, y = 5, *(6, 7), **{
  40.     'a': 8,
  41.     'b': 9 })
  42.  
  43. try:
  44.     e(c = 3)
  45. except TypeError:
  46.     pass
  47.  
  48. print "should raise TypeError: e() got an unexpected keyword argument 'c'"
  49.  
  50. try:
  51.     g()
  52. except TypeError:
  53.     err = None
  54.     print 'TypeError:', err
  55.  
  56. print 'should raise TypeError: not enough arguments; expected 1, got 0'
  57.  
  58. try:
  59.     g(*())
  60. except TypeError:
  61.     err = None
  62.     print 'TypeError:', err
  63.  
  64. print 'should raise TypeError: not enough arguments; expected 1, got 0'
  65.  
  66. try:
  67.     g(*(), **{ })
  68. except TypeError:
  69.     err = None
  70.     print 'TypeError:', err
  71.  
  72. print 'should raise TypeError: not enough arguments; expected 1, got 0'
  73. g(1)
  74. g(1, 2)
  75. g(1, 2, 3)
  76. g(1, 2, 3, *(4, 5))
  77.  
  78. class Nothing:
  79.     pass
  80.  
  81.  
  82. try:
  83.     g(*Nothing())
  84. except TypeError:
  85.     attr = None
  86.  
  87. print 'should raise TypeError'
  88.  
  89. class Nothing:
  90.     
  91.     def __len__(self):
  92.         return 5
  93.  
  94.  
  95.  
  96. try:
  97.     g(*Nothing())
  98. except TypeError:
  99.     attr = None
  100.  
  101. print 'should raise TypeError'
  102.  
  103. class Nothing:
  104.     
  105.     def __len__(self):
  106.         return 5
  107.  
  108.     
  109.     def __getitem__(self, i):
  110.         if i < 3:
  111.             return i
  112.         else:
  113.             raise IndexError, i
  114.  
  115.  
  116. g(*Nothing())
  117.  
  118. class Nothing:
  119.     
  120.     def __init__(self):
  121.         self.c = 0
  122.  
  123.     
  124.     def __iter__(self):
  125.         return self
  126.  
  127.  
  128.  
  129. try:
  130.     g(*Nothing())
  131. except TypeError:
  132.     attr = None
  133.  
  134. print 'should raise TypeError'
  135.  
  136. class Nothing:
  137.     
  138.     def __init__(self):
  139.         self.c = 0
  140.  
  141.     
  142.     def __iter__(self):
  143.         return self
  144.  
  145.     
  146.     def next(self):
  147.         if self.c == 4:
  148.             raise StopIteration
  149.         
  150.         c = self.c
  151.         self.c += 1
  152.         return c
  153.  
  154.  
  155. g(*Nothing())
  156. d = {
  157.     'a': 1,
  158.     'b': 2,
  159.     'c': 3 }
  160. d2 = d.copy()
  161. verify(d == d2)
  162. g(1, d = 4, **d)
  163. print sortdict(d)
  164. print sortdict(d2)
  165. verify(d == d2, 'function call modified dictionary')
  166.  
  167. def saboteur(**kw):
  168.     kw['x'] = locals()
  169.     return kw
  170.  
  171. d = { }
  172. kw = saboteur(a = 1, **d)
  173. verify(d == { })
  174. del kw['x']
  175.  
  176. try:
  177.     g(1, 2, 3, **{
  178.         'x': 4,
  179.         'y': 5 })
  180. except TypeError:
  181.     err = None
  182.     print err
  183.  
  184. print 'should raise TypeError: keyword parameter redefined'
  185.  
  186. try:
  187.     g(1, 2, 3, a = 4, b = 5, *(6, 7), **{
  188.         'a': 8,
  189.         'b': 9 })
  190. except TypeError:
  191.     err = None
  192.     print err
  193.  
  194. print 'should raise TypeError: keyword parameter redefined'
  195.  
  196. try:
  197.     f(**{
  198.         1: 2 })
  199. except TypeError:
  200.     err = None
  201.     print err
  202.  
  203. print 'should raise TypeError: keywords must be strings'
  204.  
  205. try:
  206.     h(**{
  207.         'e': 2 })
  208. except TypeError:
  209.     err = None
  210.     print err
  211.  
  212. print 'should raise TypeError: unexpected keyword argument: e'
  213.  
  214. try:
  215.     h(*h)
  216. except TypeError:
  217.     err = None
  218.     print err
  219.  
  220. print 'should raise TypeError: * argument must be a tuple'
  221.  
  222. try:
  223.     dir(*h)
  224. except TypeError:
  225.     err = None
  226.     print err
  227.  
  228. print 'should raise TypeError: * argument must be a tuple'
  229.  
  230. try:
  231.     None(*h)
  232. except TypeError:
  233.     err = None
  234.     print err
  235.  
  236. print 'should raise TypeError: * argument must be a tuple'
  237.  
  238. try:
  239.     h(**h)
  240. except TypeError:
  241.     err = None
  242.     print err
  243.  
  244. print 'should raise TypeError: ** argument must be a dictionary'
  245.  
  246. try:
  247.     dir(**h)
  248. except TypeError:
  249.     err = None
  250.     print err
  251.  
  252. print 'should raise TypeError: ** argument must be a dictionary'
  253.  
  254. try:
  255.     None(**h)
  256. except TypeError:
  257.     err = None
  258.     print err
  259.  
  260. print 'should raise TypeError: ** argument must be a dictionary'
  261.  
  262. try:
  263.     dir(b = 1, **{
  264.         'b': 1 })
  265. except TypeError:
  266.     err = None
  267.     print err
  268.  
  269. print "should raise TypeError: dir() got multiple values for keyword argument 'b'"
  270.  
  271. def f2(*a, **b):
  272.     return (a, b)
  273.  
  274. d = { }
  275. for i in range(512):
  276.     key = 'k%d' % i
  277.     d[key] = i
  278.  
  279. (a, b) = f2(1, *(2, 3), **d)
  280. print len(a), len(b), b == d
  281.  
  282. class Foo:
  283.     
  284.     def method(self, arg1, arg2):
  285.         return arg1 + arg2
  286.  
  287.  
  288. x = Foo()
  289. print Foo.method(*(x, 1, 2))
  290. print Foo.method(x, *(1, 2))
  291.  
  292. try:
  293.     print Foo.method(*(1, 2, 3))
  294. except TypeError:
  295.     err = None
  296.  
  297. print 'expected a TypeError for unbound method call'
  298.  
  299. try:
  300.     print Foo.method(1, *(2, 3))
  301. except TypeError:
  302.     err = None
  303.  
  304. print 'expected a TypeError for unbound method call'
  305. id(1, **{ })
  306.  
  307. try:
  308.     id(1, **{
  309.         'foo': 1 })
  310. except TypeError:
  311.     pass
  312.  
  313. raise TestFailed, 'expected TypeError; no exception raised'
  314. (a, b, d, e, v, k) = ('A', 'B', 'D', 'E', 'V', 'K')
  315. funcs = []
  316. maxargs = { }
  317. for args in [
  318.     '',
  319.     'a',
  320.     'ab']:
  321.     for defargs in [
  322.         '',
  323.         'd',
  324.         'de']:
  325.         for vararg in [
  326.             '',
  327.             'v']:
  328.             for kwarg in [
  329.                 '',
  330.                 'k']:
  331.                 name = 'z' + args + defargs + vararg + kwarg
  332.                 arglist = list(args) + map((lambda x: '%s="%s"' % (x, x)), defargs)
  333.                 if vararg:
  334.                     arglist.append('*' + vararg)
  335.                 
  336.                 if kwarg:
  337.                     arglist.append('**' + kwarg)
  338.                 
  339.                 decl = ('def %s(%s): print "ok %s", a, b, d, e, v, ' + 'type(k) is type ("") and k or sortdict(k)') % (name, ', '.join(arglist), name)
  340.                 exec decl
  341.                 func = eval(name)
  342.                 funcs.append(func)
  343.                 maxargs[func] = len(args + defargs)
  344.             
  345.         
  346.     
  347.  
  348. for name in [
  349.     'za',
  350.     'zade',
  351.     'zabk',
  352.     'zabdv',
  353.     'zabdevk']:
  354.     func = eval(name)
  355.     for args in [
  356.         (),
  357.         (1, 2),
  358.         (1, 2, 3, 4, 5)]:
  359.         for kwargs in [
  360.             '',
  361.             'a',
  362.             'd',
  363.             'ad',
  364.             'abde']:
  365.             kwdict = { }
  366.             for k in kwargs:
  367.                 kwdict[k] = k + k
  368.             
  369.             print func.func_name, args, sortdict(kwdict), '->',
  370.             
  371.             try:
  372.                 func(*args, **kwdict)
  373.             continue
  374.             except TypeError:
  375.                 err = None
  376.                 print err
  377.                 continue
  378.             
  379.  
  380.         
  381.     
  382.  
  383.